home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Just Call Me Internet
/
Just Call Me Internet.iso
/
prog
/
atari
/
m2
/
cat3src
/
liesmich.txt
< prev
next >
Wrap
Text File
|
1997-10-26
|
11KB
|
274 lines
Dokumentation zu den Sourcen von CAT, FRED, CATPUTZ und der MagicLib 3.3
Diese Datei ist ein drftiger Ersatz fr die Programmierdoku zu allen
oben genannten Programmen, denn eine richtige Doku gibt es nicht. In
dieser Datei wird beschrieben, wie man die Sourcen compilieren kann,
was es an Besonderheiten zu beachten gibt, und wo man das MM2-System
herbekommt.
Zuallerst ein paar allgemeine Sachen. Die gesammelten Sourcen zu CAT und
den anderen Programmen hierin unterliegen der CAT Public License, die
als CATPL.TXT in diesem Paket enthalten ist. Wer neue Versionen von einem
der Programme herausbringen will oder nderungen durchfhren will, mu
diese Lizenz beachten.
Die gesamten Sourcen zu CAT, CATPUTZ und FRED knnen nur gemeinsam
verteilt werden, da alle 3 Programme einige Module gemeinsam nutzen. Wenn
man das aufteilen wollte in drei verschiedene Sourcearchive, wre ein
Groteil der Dateien mehrfach vorhanden. Daher gibt es nur dieses eine
groe Archiv.
1. Wo erhalte ich das MM2-System
Das Megamax Modula-2 System ist inzwischen Freeware.
Erhltlich ist es ber die Homepage von Thomas Tempelmann,
http://www.muc.de/~tt/files-d.html#MM2
Man kann es auch direkt per ftp beziehen:
ftp://ftp.muc.de/mac/magicmac/Megamax_Modula-2_DevEnv.ZIP
Das Archiv ist ca. 3,1 MB gro und enthlt neben der Entwicklungs-
umgebung auch smtliche Sourcen dazu, also auch die zum Compiler,
Editor, Linker und Library.
2. Wie richte ich die MM2-Entwicklungsumgebung ein?
Wenn man ein MM2-System installiert hat, sollte man unter dem MM2-Directory
folgende Directories einrichten:
CAT\
PUTZ\
MAGIC\
Man kann dazu einfach die Dateien aus diesem Archiv mit der gesamten
Ordnerstruktur in das Stammverzeichnis vom MM2-System verschieben.
Anschlieend sind die entsprechenden Einstellungsdateien fr CAT, CATPUTZ
und die MagicLib zu erstellen. Dies sind sowohl die M2P-Dateien, in der
die Parameter der Shell eingestellt werden, als auch die M2B-Dateien,
in der Pfade und Tools eingetragen werden. Passende M2B-Dateien liegen
diesem Archiv bei. Diese mssen ggf. noch angepat werden, die Anpassungen
sollten aber minimal sein.
Zum Erstellen einer M2P-Datei geht man wie folgt vor:
Einstellen der Shell-Parameter (Parameter/Shell)
Dort trgt man folgendes ein:
Make: MM2MAKE
Temp-Pfad: *\TMP
Batchdatei: *\CAT.M2B
Parameterdatei: <pfad>CAT.M2P
Dabei mu der Pfad zur Parameterdatei ein voll qualifizierter Pfad sein,
also zum Beispiel D:\MM_21\CAT.M2P. Die anderen Parameter kann man
einstellen, wie es einem persnlich am besten gefllt.
Einstellen der Editor-Parameter (Parameter/Editor):
Ich empfehle, als Editor FRED zu verwenden, den Editor aus dem CAT-Paket.
Dieser arbeitet mit der MM2-Umgebung hervorragend zusammen. Dafr sind
folgende Einstellungen vorzunehmen:
Editor: Vollstndiger Pfad zu FRED, z.B: D:\MM_21\CAT\MOD\FRED.PRG
Die folgenden Schalter mssen gesetzt sein, die anderen nicht:
Shell durchsucht Source-Pfade fr den Editor
Argumentzeile an Editor: Name der Source, Fehlerposition, Fehlermeldung
Editor versteht SE-Protokoll
Editor parallel starten
Dabei gehe ich davon aus, da in dem MM2-Paket eine aktuelle Shell
enthalten ist, die das SE-Protokoll versteht!
Einstellen der Compiler-Parameter (Parameter/Compiler):
Die einzige nderung hier wird an den Direktiven vorgenommen, ansonsten
kann alles beim Default bleiben. Bei den Direktiven ist folgendes
einzutragen:
Z+ S- F- /I40000
Damit wird bei einfachen Ergebnissen von Funktionen dieses in D0 zurck-
gegeben, der Stackcheck ausgeschaltet, die FPU nicht benutzt und der
Bezeichnerstack auf 40000 Zeichen gesetzt.
Der Stack-Check mu ausgeschaltet sein, da ansonsten fehlerhafterweise bei
einigen Prozeduraufrufen innerhalb von CAT Stackfehler angemeckert werden
(die definitiv nicht auftreten), und der Bezeichnerstack mu erhht werden,
da sonst MAUSTAUS.D, welches die Bezeichner der Resourcedatei einschliet,
nicht compiliert werden kann. Die Ergebnisrckgabe ber D0 wird aus
Geschwindigkeitsgrnden in CAT immer benutzt. Da diese Option auch teil-
weise im Source gesetzt wird, ist sie auch hier zwingend.
Einstellen der Linker-Parameter (Parameter/Linker):
Dort mu man die Anzahl der Module fr CAT auf 200 einstellen, ansonsten
ist CAT nicht linkbar. Als Stackgre mu man 16384 einstellen, mit weniger
luft CAT wahrscheinlich nicht!
Der erste Treiber M2INIT mu zwingend enthalten sein, da dieses Modul
die MM2-Libraries initialisiert.
Falls man Debug-Versionen erstellen mchte, sollte man keine Optimierung
einstellen und als Treiber GEMError.IMP eintragen. Ansonsten kann man
vollstndige Optimierung anwhlen und keine weiteren Treiber (auer M2INIT)
aktivieren.
Einstellen der Umgebungs-Parameter:
Unter Info/Umgebung kann man noch die Default-Makedatei eintragen. Dies
sollte *\CAT\CAT.M2M sein. Dort sollte man auch als Stackgre fr das
Loadtime-Linking 16384 eintragen.
Nachdem man all diese Einstellungen vorgenommen hat, kann man nun die
Parameter speichern. Dabei werden diese in die unter Parameter/Shell
eingetragene Parameterdatei geschrieben, in diesem Beispiel also in
CAT.M2P.
Anschlieend kann man das gleiche auch noch fr die anderen bentigten
Parameterdateien vornehmen, die wir brauchen, also FRED.M2P, PUTZ.M2P und
MAGIC.M2P. Dazu mu man nur unter Parameter/Shell die Batchdatei und die
Parameterdatei ndern, dazu noch die Default-Makedatei unter Info/Umgebung,
und dann die Parameter speichern.
3. Wie compiliere ich die MagicLib?
Im Ordner MAGIC existieren die folgenden 4 Dateien:
libdef.m
toolsdef.m
libimp.m
toolsimp.m
Diese sind in dieser Reihenfolge zu compilieren. Dazu selektiert man diese
Dateien einfach, und drckt dann C fr Compile.
Nachdem man dieses durchgefhrt hat, kann man sich eine M2M-Datei
(Make-Datei) mittels ModRef ber die Datei MagicMak.M erstellen lassen.
Dieses Modul benutzt alle Magic-Module, man kann dadurch dann sich eine
Make-Datei erstellen lassen, die nur noch die genderten Sourcen compiliert.
4. Wie compiliere ich CAT?
Zur erstmaligen Compilation von CAT gibt es eine Datei namens CAT.M2C.
Diese Datei ist eine Batchdatei fr den Compiler, die alle Module
von CAT compiliert. Vorher mu allerdings die MagicLib compiliert werden,
ansonsten hagelt es Fehler.
Zum compilieren selektiert man die Datei CAT.M2C und drckt C in der Shell.
Wenn alles compiliert ist (kann je nach Rechner zwischen 5 Minuten bis
zu 1h (8MHz ST, geschtzt) dauern), kann man mittels des ModRef-Tools sich
eine Make-Datei zu CAT erstellen lassen. Wenn man diese hat, mu man nur
noch M in der Shell drcken, wenn man irgendwas gendert hat, und alles
wird entsprechend neu compiliert.
Die Resourcedateien von CAT liegen im MOD-Ordner. Im Gegensatz zu CATPUTZ
ist die Resourcedatei von CAT fr Pascal definiert. Interface legt dann eine
CAT.ICL-Datei an, die von dem Modul MausTauschrsc eingeschlossen wird.
Relevant ist immer die Datei von CAT, und wenn man nderungen an einer
Resource vornimmt, dann mu man diese nderungen auch an der anderen Resource
vornehmen. Relevant sind nur noch CAT.RSC und CATCOL.RSC, die Resourecdatei
CATMID.RSC wird zur Zeit nicht verwendet und ist daher auch nicht auf einem
aktuellen Stand. Ich habe sie trotzdem im Archiv gelassen, damit jemand
sie anpassen kann, falls er Interesse hat.
5. Wie compiliere ich CATPUTZ?
Zur erstmaligen Compilation von CATPUTZ gibt es eine Datei namens
CATPUTZ.M2C.
Diese Datei ist eine Batchdatei fr den Compiler, die alle Module
von CATPUTZ compiliert. Vorher mssen allerdings sowohl die MagicLib
als auch CAT compiliert werden, ansonsten hagelt es Fehler.
Zu beachten ist dabei, da die Dateien mit den Definitionen der Resource
im MOD\-Ordner liegen. Diese mssen auch compiliert werden, und zwar vor
den anderen Modulen.
Sollte man die Resource-Datei ndern, so mu die Definitionsdatei dazu
auch neu compiliert werden. Dabei mu man dann die Kommentarklammern,
die Interface um die EXPORT-Liste setzt, entfernen, da diese in CATPUTZ
bentigt wird (im Gegensatz zu CAT und zu FRED).
6. Wie compiliere ich FRED?
Dazu mu man zuerst in der Datei EDITTYPE.D die Zeile
CONST CAT = TRUE;
auf
CONST CAT = FALSE;
ndern. CAT sollte man schonmal compiliert haben, damit die meisten
Definitionsmodule vorhanden sind. Anschlieend compiliert man noch folgende
Module:
MOD\FREDRSC.D
MOD\FREDRSC.I
PLISTHEL.D
PLISTHEL.I
FREDPROT.D
FREDPROT.I
FRED.M
Auch hierbei ist zu beachten, da die Dateien mit den Definitionen der
Resource im MOD\-Ordner liegen.
Anschlieend erstellt man mittels des ModRef-Tools eine Make-Datei fr FRED,
die man dann dem MAKE vorwirft. Sollten beim ModRef noch andere Dateien
angemeckert werden, deren Definitionsmodule nicht gefunden werden, so mssen
diese auch einmal per Hand compiliert werden.
Fr weitere Arbeiten an CAT ist danach die Konstante CAT wieder auf TRUE
zu setzen.
7. Sonstige Besonderheiten
Im Source-Ordner von CAT sind einige Module, die auch so in der Library
vom MM2-System enthalten sind. Dabei handelt es sich um die Module
GEMError.I, GEMScan.I, Storage.I und StorBase.I. GEMError und GEMScan sind
Module zur Fehlerbehandlung, die ich so umgestellt habe, da sie die
MagicLib benutzen und nicht mehr die MM2-GEM-Library. Dadurch wurden
unoptimierte Programme etwas kleiner, auerdem wurden die Fehleralerts
tastaturbedienbar. Bei Storage und StorBase handelt es sich um die
Speicherverwaltung vom MM2. Ich habe diese Module so modifiziert, da sie
sich nicht mehr in die Speicherverwaltung vom GEMDOS reinhngen und nicht
mehr dauernd Aufrufe im Supervisormodus machen. Dadurch wurde die Speicher-
verwaltung sauberer. Diese vier Module sind nicht zwingend in der Form,
wie ich sie mitliefere, zu benutzen, man kann auch die MM2-Originale nehmen,
aber meine sind besser, daher sollten sie benutzt werden.
In den Ordnern SRC\ und SYS\ befinden sich die Sourcen bzw. die
compilierten Module zum SE-Protokoll. Diese werden von FRED bentigt.
Man kann diese Module einfach so in die entsprechenden Ordner des MM2-
Systems kopieren (falls nicht vorhanden!).
Sollten Versionskonflikte angemeckert werden, so mu man dieses Modul
vor der Compilation von FRED auch compilieren.
In der Datei CAT.M2D befindet sich die komplette Entwicklungshistory von
CAT und auch FRED. Diese ist interessant, da man darin zumindest zum
Teil sehen kann, welche Module was machen.
Im Ordner DIST\ befinden sich die sonstigen Dateien, die zu einer CAT-
Distribution gehren, also MausTausch-Scripte, die Fonts, das Datums-
Programm und noch ein paar andere Texte und Dateien.
8. Warum haben alle .D-Dateien das Datum 24.10. oder 26.10.?
Weil ich mich touch *.d alle Dateien modifiziert habe, um durch das Make
die Batchdateien zum erstmaligen compilieren zu generieren. Einen anderen
Grund gibt es dafr nicht.
So, das wars erstmal. Als Doku ist das sicherlich nicht zu gebrauchen,
aber zum Einstieg sollte es so gerade reichen. Die Grundlagen und die
Bedienung vom MM2-System erklre ich nicht, dazu gibt es eine Anleitung
(hoffe ich).
Zum Rest kann ich nur noch eines sagen:
Use the source, Luke!